package com.itheima.task.demo;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class CountAttendTask {

    /**
     * cron表达式是一个通用的表达式, 用来设置定时规则, 由七部分组成, 每部分中间用空格隔开
        组成部分           含义               取值范围
        1             Seconds(秒)            0－59
        2             Minutes(分)            0－59
        3             Hours(时)              0-23
        4             Day-of-Month(天)       1-31
        5             Month(月)              0-11或JAN-DEC
        6             Day-of-Week(星期)      1-7(1表示星期日)或SUN-SAT
        7             Year(年) 可选          1970-2099

       符号                               含义
        ?      放弃指定。当两个子表达式其中一个被指定了值以后，为了避免冲突，需要将另外一个的值设为“?”例如：20日不一定是星期几
        *      代表任意值
        ,      设置多个值                      例如”26,29,33”表示在26分,29分和33分各自运行一次任务
        -      设置取值范围                    例如”5-20”，表示从5分到20分钟每分钟运行一次任务
        /      设置频率或间隔                  例如"0/5"表示每隔5个秒运行一次任务
        L      用于每月/每周表示每月的最后一天，或每个月的最后星期几      例如"6L"表示"每月的最后一个星期五"
        W      表示离给定日期最近的工作日        例如"15W"放在每月（day-of-month）上表示"离本月15日最近的工作日"
        #      表示该月第几个周几                例如”6#3”表示该月第3个周五
     */

    @Scheduled(cron = "*/5 * * * * ?") //秒 分 时 日 月  周
    public void countAttend() {

        System.out.println(new Date() + "It is time to send mail to leader .... ");
    }

}